home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 4.1 KB | 134 lines | [TEXT/MPS ] |
- /*
- File: HIEmbeddingPanels.idl
-
- Contains: Interfaces to embedding HIPanel classes.
-
- Version: Technology: System 8.0
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1995-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
- */
-
-
-
- #ifndef __HIEMBEDDINGPANELS_IDL__
- #define __HIEMBEDDINGPANELS_IDL__
-
- #include <HIPanels.idl>
- #include <HIEmbeddingPanelTypes.idl>
-
-
- /* ########################################################################
-
- HIEmbeddingPanel
-
- A panel that has sub-panels.
-
- ######################################################################## */
- interface HIEmbeddingPanel : HIPanel
- {
- // ••• this should be a private structure in the embedding panel implementation?
-
- // ======================================================
- // Attributes
- // ======================================================
- ItemCount GetSubPanelCount ();
- HIPanel GetLastSelectedSubPanel ();
-
- // ======================================================
- // Public Methods
- // ======================================================
- // Programatic Initalizer
- OSStatus InitEmbeddingPanel (in RefLabel identifier,
- in HIWindow window, in Rect bounds);
-
- // append the given panel to our list of subPanels. Where is the
- // index at which we will insert the panel. The user
- // can pass kAppendToEnd or kInsertAtFront, or a real index
- // if adoptSubPanel is true, the subPanel will be disposed when
- // removed or this panel is disposed; otherwise, disposal is the client's
- // responsibility.
- OSStatus AddSubPanel (in HIPanel subPanel, in HISubPanelIndex where,
- in HIAdoptionFlags adoptionFlags, in HIFrameBindingFlags frameBindingFlags);
-
- // remove the given panel from our list. If the subPanel
- // was adopted when it was added, then the subPanel
- // will get disposed here.
- OSStatus RemoveSubPanel (in HIPanel subPanel);
-
- // get the subPanel at the given index (0-based)
- // return NULL if a bad index.
- HIPanel GetSubPanel (in HISubPanelIndex subPanelIndex);
-
- // set the given panel to be our user input focus subPanel,
- // or if NULL, don't have any subPanel with keyboard focus.
- // return an error if there was a problem attempting to
- // transfer the keyboard focus.
- HIPanel GetUserInputFocusSubPanel ();
- OSStatus SetUserInputFocusSubPanel (in HIPanel subPanel);
-
- // return the index of the given subPanel
- HISubPanelIndex GetSubPanelIndex (in HIPanel subPanel);
-
- // search subPanels until one of a matching
- // refLabel is found. If deep is true, recursively search all subpanels.
- OSStatus GetSubPanelsFromRefLabel (in RefLabel identifier, in boolean deep, in ItemCount requestedSubPanels,
- out ItemCount totalSubPanels, inout HIPanel thePanels);
-
- // ======================================================
- // Protected Utility Methods
- // ======================================================
- implementation {
-
- passthru C_h = "#include <HIEmbeddingPanelTypes.h>";
-
- passthru C_xh = "#include <HIEmbeddingPanelTypes.h>";
-
- releaseorder: GetSubPanelCount,
- GetUserInputFocusSubPanel,
- GetLastSelectedSubPanel,
- InitEmbeddingPanel,
- AddSubPanel,
- RemoveSubPanel,
- GetSubPanel,
- SetUserInputFocusSubPanel,
- GetSubPanelIndex,
- GetSubPanelsFromRefLabel;
- };
- };
-
-
-
- interface HIRootPanel : HIEmbeddingPanel
- {
- // ======================================================
- // Public Methods
- // ======================================================
-
- OSStatus InitRootPanel (in RefLabel identifier,
- in HIWindow window);
-
- /* Accumulated erase region - allows for optimized erasing */
- void AdjustAccumulatedEraseRgn( in HIAccumulatorOperation accumulatorOperation,
- in Rect oldRectangle,
- in Rect newRectangle);
- void EraseAccumulatedEraseRgn(in CGrafPtr targetPort);
-
- implementation
- {
-
- releaseorder: InitRootPanel,
- AdjustAccumulatedEraseRgn,
- EraseAccumulatedEraseRgn;
- };
- };
-
-
- #endif
-